package com.mdd.front.service.coupon;

import com.mdd.common.core.PageResult;
import com.mdd.front.validate.CouponReceiveParam;
import com.mdd.front.validate.CouponUseParam;
import com.mdd.front.validate.PageParam;
import com.mdd.front.vo.coupon.CouponCenterVo;
import com.mdd.front.vo.coupon.CouponMineVo;

import java.util.List;
import java.util.Map;

public interface ICouponService {

    List<CouponCenterVo> center();

    void receive(CouponReceiveParam couponReceiveParam);

    PageResult<CouponMineVo> mine(PageParam pageParam, Integer userId, int status);

    Map<String, Object> getMyCouponCount(Integer userId);

    List<CouponCenterVo> getCourseCoupon(Integer courseId, Integer userId);

    List<CouponMineVo> getMineAvailableCourseCoupon(Integer courseId, Integer userId, String amount, Long now);

    List<CouponMineVo> getMineUnavailableCourseCoupon(Integer courseId, Integer userId, String amount, Long now);

    void use(CouponUseParam couponUseParam);
}
